/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager;

import br.com.deployment.dao.EnderecoDao;
import br.com.deployment.entidade.localidade.Cidade;
import br.com.deployment.entidade.localidade.Endereco;
import br.com.deployment.servico.CidadeServico;
import br.com.deployment.utilitario.TipoEndereco;
import br.com.deployment.utilitario.TipoLogradouro;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

/**
 *
 * @author elyjr
 */
@ManagedBean
@SessionScoped
public class ManagerEndereco implements Serializable{

    @EJB
    EnderecoDao enderecoDao;
    
    @EJB
    CidadeServico cidadeServico;
    
    private Endereco endereco;
    
    public ManagerEndereco() {
    }
    
    @PostConstruct
    public void init(){
        endereco = new Endereco();
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }
    
        public List<SelectItem> selectItemTipoEndereco() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (TipoEndereco tipo : TipoEndereco.values()) {
                items.add(new SelectItem(tipo));
        }
        return items;
    }

    public List<SelectItem> selectItemTipoLogradouro() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (TipoLogradouro tipo : TipoLogradouro.values()) {
            items.add(new SelectItem(tipo.name(), tipo.toString()));
        }
        return items;
    }
    
    public List<Cidade> completeCidade(String query) {  
        List<Cidade> bd = new ArrayList<Cidade>();  
        Cidade cidade = new Cidade();
        cidade.setNom_cidade(query);
        
        try {
            bd = cidadeServico.findCidade(cidade);
        } catch (Exception ex) {
            Logger.getLogger(ManagerEndereco.class.getName()).log(Level.SEVERE, null, ex);
        }
                   
        return bd;  
    } 
    
}
